package com.eps.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Diana
 */
@Entity
@Table(name = "DetalleMovimiento")
@org.hibernate.annotations.Proxy(lazy=false)
@NamedQueries({
    @NamedQuery(name = "DetalleMovimiento.findAll", query = "SELECT d FROM DetalleMovimiento d"),
    @NamedQuery(name = "DetalleMovimiento.findByNrodetalleMovimiento", query = "SELECT d FROM DetalleMovimiento d WHERE d.detalleMovimientoPK.nrodetalleMovimiento = :nrodetalleMovimiento"),
    @NamedQuery(name = "DetalleMovimiento.findByIdMovimiento", query = "SELECT d FROM DetalleMovimiento d WHERE d.detalleMovimientoPK.idMovimiento = :idMovimiento"),
    @NamedQuery(name = "DetalleMovimiento.findByCantidad", query = "SELECT d FROM DetalleMovimiento d WHERE d.cantidad = :cantidad"),
    @NamedQuery(name = "DetalleMovimiento.findByPrecio", query = "SELECT d FROM DetalleMovimiento d WHERE d.precio = :precio"),
    @NamedQuery(name = "DetalleMovimiento.findByFecha", query = "SELECT d FROM DetalleMovimiento d WHERE d.fecha = :fecha"),
    @NamedQuery(name = "DetalleMovimiento.findByCcosto", query = "SELECT d FROM DetalleMovimiento d WHERE d.ccosto = :ccosto"), 
    @NamedQuery(name = "DetalleMovimiento.findByCodInv", query = "SELECT d FROM DetalleMovimiento d WHERE d.codInv = :codInv"),
    @NamedQuery(name = "DetalleMovimiento.findByCodPresupuestal", query = "SELECT d FROM DetalleMovimiento d WHERE d.codPresupuestal = :codPresupuestal")})
public class DetalleMovimiento implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetalleMovimientoPK detalleMovimientoPK;
    @Column(name = "cantidad")
    private BigDecimal cantidad;
    @Column(name = "precio")
    private BigDecimal precio;
    @Column(name = "valor")
    private BigDecimal valor;
    @Column(name = "fecha")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecha;
    @JoinColumn(name = "id_zona", referencedColumnName = "id_zona")
    @ManyToOne(optional = false)
    private Zona idZona;
    @JoinColumn(name = "id_localidad", referencedColumnName = "id_localidad")
    @ManyToOne
    private Localidad idLocalidad;
    @Column(name = "ccosto")
    private String ccosto;
    @Column(name = "cod_inv")
    private String codInv;
    @Column(name = "cod_presupuestal")
    private String codPresupuestal;
    @Column(name = "id_proyecto")
    private String idproyecto;
    @Column(name = "estado_ubicacion")
    private int estado_ubicacion;
    @Column(name = "cod_Uni_Organizativa")
    private String id_unidad_organica;
    @JoinColumn(name = "id_Movimiento", referencedColumnName = "id_movimiento", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Movimiento movimiento;
    @JoinColumn(name = "id_suministro", referencedColumnName = "ID_Suministro")
    @ManyToOne
    private Suministros idSuministro;
    @JoinColumn(name = "tipo_Movimiento", referencedColumnName = "id_tabla_tipo")
    @ManyToOne
    private Tipo tipoMovimiento;
    @Column(name = "cta_cble")
    private String cta_cble;
    @Column(name = "cta_cble_aux")
    private String cta_cble_aux;
    @Column(name = "cta_cble_alm")
    private String cta_cble_alm;
   
    public DetalleMovimiento() {
    }

    public DetalleMovimiento(DetalleMovimientoPK detalleMovimientoPK) {
        this.detalleMovimientoPK = detalleMovimientoPK;
    }

    public DetalleMovimiento(int nrodetalleMovimiento, String idMovimiento) {
        this.detalleMovimientoPK = new DetalleMovimientoPK(nrodetalleMovimiento, idMovimiento);
    }

    public DetalleMovimientoPK getDetalleMovimientoPK() {
        return detalleMovimientoPK;
    }

    public BigDecimal getValor() {
        return valor;
    }

    public void setValor(BigDecimal valor) {
        this.valor = valor;
    }

    public int getEstado_ubicacion() {
        return estado_ubicacion;
    }

    public void setEstado_ubicacion(int estado_ubicacion) {
        this.estado_ubicacion = estado_ubicacion;
    }

    public void setDetalleMovimientoPK(DetalleMovimientoPK detalleMovimientoPK) {
        this.detalleMovimientoPK = detalleMovimientoPK;
    }

    public BigDecimal getCantidad() {
        return cantidad;
    }

    public void setCantidad(BigDecimal cantidad) {
        this.cantidad = cantidad;
    }

    public BigDecimal getPrecio() {
        return precio;
    }

    public void setPrecio(BigDecimal precio) {
        this.precio = precio;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public Zona getIdZona() {
        return idZona;
    }

    public void setIdZona(Zona idZona) {
        this.idZona = idZona;
    }

   
    public String getCcosto() {
        return ccosto;
    }

    public void setCcosto(String ccosto) {
        this.ccosto = ccosto;
    }

    public String getCta_cble() {
        return cta_cble;
    }

    public void setCta_cble(String cta_cble) {
        this.cta_cble = cta_cble;
    }

    public String getCta_cble_alm() {
        return cta_cble_alm;
    }

    public void setCta_cble_alm(String cta_cble_alm) {
        this.cta_cble_alm = cta_cble_alm;
    }

    public String getCta_cble_aux() {
        return cta_cble_aux;
    }

    public void setCta_cble_aux(String cta_cble_aux) {
        this.cta_cble_aux = cta_cble_aux;
    }

   

    public String getCodInv() {
        return codInv;
    }

    public void setCodInv(String codInv) {
        this.codInv = codInv;
    }

    public String getCodPresupuestal() {
        return codPresupuestal;
    }

    public void setCodPresupuestal(String codPresupuestal) {
        this.codPresupuestal = codPresupuestal;
    }

    public String getIdProyecto() {
        return idproyecto;
    }

    public void setIdProyecto(String idProyecto) {
        this.idproyecto = idProyecto;
    }

    public Movimiento getMovimiento() {
        return movimiento;
    }

    public void setMovimiento(Movimiento movimiento) {
        this.movimiento = movimiento;
    }

    public Suministros getIdSuministro() {
        return idSuministro;
    }

    public void setIdSuministro(Suministros idSuministro) {
        this.idSuministro = idSuministro;
    }

    public Tipo getTipoMovimiento() {
        return tipoMovimiento;
    }

    public void setTipoMovimiento(Tipo tipoMovimiento) {
        this.tipoMovimiento = tipoMovimiento;
    }

    public Localidad getIdLocalidad() {
        return idLocalidad;
    }

    public void setIdLocalidad(Localidad idLocalidad) {
        this.idLocalidad = idLocalidad;
    }

    public String getId_unidad_organica() {
        return id_unidad_organica;
    }

    public void setId_unidad_organica(String id_unidad_organica) {
        this.id_unidad_organica = id_unidad_organica;
    }

    public String getIdproyecto() {
        return idproyecto;
    }

    public void setIdproyecto(String idproyecto) {
        this.idproyecto = idproyecto;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detalleMovimientoPK != null ? detalleMovimientoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof DetalleMovimiento)) {
            return false;
        }
        DetalleMovimiento other = (DetalleMovimiento) object;
        if ((this.detalleMovimientoPK == null && other.detalleMovimientoPK != null) || (this.detalleMovimientoPK != null && !this.detalleMovimientoPK.equals(other.detalleMovimientoPK))) {
            return false;
        }
        return true;
    }

  

    @Override
    public String toString() {
        return "suministros.ejb30.entity.DetalleMovimiento[detalleMovimientoPK=" + detalleMovimientoPK + "]";
    }

}

